package com.cmc.cloud.cmclink.doc.api.document.rep;

import com.cmc.cloud.cmclink.doc.api.document.req.soamendapplyvo.SoAmendApplyRespVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.math.BigDecimal;

/**
 * 订舱主Response VO
 *
 * @author codegen
 */
@Schema(description = "管理后台 - 订舱主 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public class SoRespDto extends SoBaseRespDto {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "27247")
    private Long id;

    @Schema(description = "货物-货类-多个聚合")
    private String cargoTypeSum;

    @Schema(description = "货物-子类-多个聚合")
    private String subCargoTypeSum;

    @Schema(description = "货物-毛重-多个聚合 预估毛重（kgs）")
    private BigDecimal grossWeightSum;

    @Schema(description = "预配-多个聚合 1*20GP;2*40HC 箱量*箱尺寸+箱型")
    private String forecastDesc;

    @Schema(description = "航次 -POL ETD 预计离港时间 ")
    private String polEtd;

    @Schema(description = "POD ETA 预计到达时间")
    private String podEta;

    @Schema(description = "出口航线")
    private String laneCodeEx;

    @Schema(description = "创建人", requiredMode = Schema.RequiredMode.REQUIRED)
    private String creator;

    @Schema(description = "修改人", requiredMode = Schema.RequiredMode.REQUIRED)
    private String updater;

    @Schema(description = "创建时间")
    private String createTime;

    @Schema(description = "更新时间")
    private String updateTime;

    @Schema(description = "是否可以进行订舱修正 true:可以 null或者fasle 不可以")
    private Boolean canAmend;

    @Schema(description = "订舱更正状态 SOC01:订舱更改处理中 SOC02:订舱更改接受 SOC03:订舱更改拒绝 可为null")
    private String soAmendStatus;

    @Schema(description = "订舱修正数据")
    private SoAmendApplyRespVO soAmendApplyRespVO;

    @Schema(description = "是否可以生成提单")
    private Boolean canGenerateBl;

    @Schema(description = "是否可以生成舱单")
    private Boolean canGenerateManifest;

    @Schema(description = "是否可以取消订舱")
    private Boolean canCancelSo;
}
